package com.kaili.basic.mapper;


import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.kaili.basic.pojo.dto.MdmGroupQueryByPageDto;
import com.kaili.basic.pojo.entity.MdmGroupEntity;
import com.kaili.basic.pojo.vo.MdmGroupQueryAllVo;
import com.kaili.basic.pojo.vo.MdmQueryGroupByIdVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Desc: 分组mapper
 * @author: TBS
 * @Time: 2019/8/1 18:50
 * @Copyright: © 2018 杭州凯立通信有限公司 版权所有
 * @Warning: 本内容仅限于公司内部传阅,禁止外泄或用于其它商业目的
 */
@Mapper
public interface GroupMapper extends BaseMapper<MdmGroupEntity> {

    /**
    * @Desc: 分页查询
    * @author: TBS
    * @Time: 2019/8/9 14:04
    * @param page
    * @param mdmGroupQueryByPageDto
    * @return java.util.List<com.kaili.basic.pojo.vo.MdmGroupQueryAllVo>
    */
    List<MdmGroupQueryAllVo> queryPageList(Page<MdmGroupQueryAllVo> page, MdmGroupQueryByPageDto mdmGroupQueryByPageDto);

    /**
    * @Desc: 增加
    * @author: TBS
    * @Time: 2019/8/9 14:05
    * @param mdmGroupEntity
    * @return void
    */
    void add(MdmGroupEntity mdmGroupEntity);

    /**
    * @Desc: 去重
    * @author: TBS
    * @Time: 2019/8/9 14:05
    * @param mdmGroupEntity
    * @return java.lang.Integer
    */
    Integer queryDprvGroup(MdmGroupEntity mdmGroupEntity);

    /**
    * @Desc: 查询上级ID
    * @author: TBS
    * @Time: 2019/8/9 14:05
    * @param id
    * @return java.lang.String
    */
    String queryParentGroupId(int id);

    /**
    * @Desc: 删除
    * @author: TBS
    * @Time: 2019/8/9 14:10
    * @param id
    * @return void
    */
    void delete(@Param("id") int id);

    /**
    * @Desc: 修改
    * @author: TBS
    * @Time: 2019/8/9 14:10
    * @param mdmGroupEntity
    * @return void
    */
    void update(MdmGroupEntity mdmGroupEntity);

    /**
    * @Desc:  导入时  通过ID查询名字
    * @author: TBS
    * @Time: 2019/8/9 14:10
    * @param name
    * @return int
    */
    int getGroupIdByName(String name);

    /**
    * @Desc: 导出
    * @author: TBS
    * @Time: 2019/8/9 14:11
    * @param mdmGroupQueryByPageDto
    * @return java.util.List<com.kaili.basic.pojo.vo.MdmGroupQueryAllVo>
    */
    List<MdmGroupQueryAllVo> queryGroupExport (MdmGroupQueryByPageDto mdmGroupQueryByPageDto);

    /**
    * @Desc: 查询数据库中编号的最大值
    * @author: TBS
    * @Time: 2019/8/9 14:11
    *
    * @return java.lang.String
    */
    String getCode();

    /**
    * @Desc: 通过ID 查询
    * @author: TBS
    * @Time: 2019/8/9 14:12
    * @param id
    * @return com.kaili.basic.pojo.vo.MdmQueryGroupByIdVo
    */
    MdmQueryGroupByIdVo queryGroupById (int id);

    /**
    * @Desc: 通过所属机构ID  查询
    * @author: TBS
    * @Time: 2019/8/9 14:12
    * @param id
    * @return java.util.List<com.kaili.basic.pojo.entity.MdmGroupEntity>
    */
    List<MdmGroupEntity> queryGroupByOrgId (int id);
}
